﻿-------------------------------------------------------------------------------
-- Вставка разделённых путей и имён файлов. © SimSU
-------------------------------------------------------------------------------
-- Вставка многострочного текста из буфера как одной строки с разделителями вместо переводов строк.

---- Настройки
local function Settings()
-- Начало файла Profile\SimSU\Dialog_SeparateName.cfg
return{
  Key="ShiftIns"; --Prior=50;

  Separator=";"; --Символ разделителя.
}
-- Конец файла Profile\SimSU\Dialog_SeparateName.cfg
end

---- Локализация
_G.far.lang=far.lang or win.GetEnv("farlang")
-- Встроенные языки / Buildin laguages
local function Messages()
if far.lang=="Russian" then
-- Начало файла Profile\SimSU\Dialog_SeparateNameRussian.lng
return{
  Descr="Вставка разделённых путей и имён файлов. © SimSU";
}
-- Конец файла Profile\SimSU\Dialog_SeparateNameRussian.lng
else--if far.lang=="English" then
-- Begin of file Profile\SimSU\Dialog_SeparateNameEnglish.lng
return{
  Descr="Вставка разделённых путей и имён файлов. © SimSU";
}
-- End of file Profile\SimSU\Dialog_SeparateNameEnglish.lng
end end

local M=(loadfile(win.GetEnv("FARPROFILE").."\\SimSU\\Dialog_SeparateName"..far.lang..".lng") or Messages)()
local S=(loadfile(win.GetEnv("FARLOCALPROFILE").."\\SimSU\\Dialog_SeparateName.cfg") or loadfile(win.GetEnv("FARPROFILE").."\\SimSU\\Dialog_SeparateName.cfg") or Settings)()

local SimSU=SimSU or {}
SimSU.Dialog_SeparateName={}
-------------------------------------------------------------------------------
function SimSU.Dialog_SeparateName.Separate(buf)
  local tbl={}
  for fn in buf:gmatch("[^\r\n]+") do
    tbl[#tbl+1]=fn
  end
  return table.concat(tbl,";")
end

function SimSU.Dialog_SeparateName.InsertSeparated()
  local buf=mf.clip(0)
  print(SimSU.Dialog_SeparateName.Separate(buf))
end
-------------------------------------------------------------------------------
if not Macro then return {Dialog_SeparateName=SimSU.Dialog_SeparateName} end

local ok, mod = pcall(require,"SimSU.Dialog_SeparateName"); if ok then SimSU=mod else _G.SimSU=SimSU end
-------------------------------------------------------------------------------

Macro {area="Dialog"; key=S.Key; priority=S.Prior; description=M.Descr; flags="";
  condition=function() return Dlg.ItemType==4 end;
  action=SimSU.Dialog_SeparateName.InsertSeparated;
}
